package map;

import java.util.HashMap;

import errors.KeyNotFoundException;
import foreground.Foreground;

/**rappresenta una mappa che ha, coma chiavi, delle chiavi basate
 * sulla classe MapKey
 * 
 * @author Koldar
 * @version 1.0
 */
@Deprecated
public class HashMapKeyMap extends HashMap<MapKey,Foreground>{

	private static final long serialVersionUID = 7433154063264981211L;
	/**indica il numero di strati che la mappa possiede*/
	private int strati;
	
	public HashMapKeyMap(){
		super();
	}
	
	public HashMapKeyMap(HashMapKeyMap oldmap){
		super(oldmap);
		this.strati=oldmap.getStrati();
	}
	/**controlla se la mappa possiede una chiave che ha, come foreKey, quella specificata
	 * nel passaggio dei parametri. Quindi, al contrario di {@link #containsKey(Object)},
	 * il metodo cerca il foreground che ha la ForeKey uguale a quella passata
	 * 
	 * @param forekey indica la forekey da controllare
	 * @return il numero dello strato in cui compare il foreground
	 * @throws KeyNotFoundException in caso in cui la chiave non sia nell'archivio
	 */
	public int containsForeKey(String forekey) throws KeyNotFoundException{
		for (int i=0;i<this.strati;i++){
			if (this.containsKey(new MapKey(i,forekey))){
				return i;
			}
		}
		throw new KeyNotFoundException(forekey);
	}
	
	/**
	 * @return the strati
	 */
	public int getStrati() {
		return strati;
	}
	
	
	
	

}
